/*
 * ScriptPropertiesInterface.java
 *
 * Created on July 14, 2007, 2:59 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package filecopier.script;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 *
 * @author david
 */
public interface ScriptPropertiesInterface {

    public static enum ScriptType {

        To, From, Restore
    }

    public void setScriptFile(ScriptType scriptType, File scriptFile) throws ScriptPropertiesException;

    public boolean isValid() throws ScriptPropertiesException;

    public void addFile(final File file) throws ScriptPropertiesException;

    public int addFiles(final File[] files) throws ScriptPropertiesException;

    public void addScript(final ScriptProperties script) throws ScriptPropertiesException;

    public int addScripts(final ScriptProperties[] scripts) throws ScriptPropertiesException;

    public void addFilePair(final File key, final File value) throws ScriptPropertiesException;

    public int addFilePairs(final Map<File, File> filePairs) throws ScriptPropertiesException;

    public List<File> getFiles() throws ScriptPropertiesException;

    public Map<File, File> getFilePairs() throws ScriptPropertiesException;

    public ScriptType getScriptType();

    public String getScriptName();

    public File getScriptFile();

    public void removeFilePair(final File restore, final File delete) throws ScriptPropertiesException;
}
